
/*********************
 *      INCLUDES
 *********************/
#include <stdio.h>
#include <stdlib.h>
#include "lv_app_factory_test.h"
#include "lv_app_gsensor.h"
//#include "desktop.h"

static pt_lv_app_factory_test g_pt_lv_app_factory_test;

static void (*lv_run_app[])(void) =
{
	lv_app_test_gsensor,
};

/*
 *  函数名：  static void event_handler_back_to_home(lv_obj_t * obj, lv_event_t event)
 *  输入参数：触发事件的对象
 *  输入参数：触发的事件类型
 *  返回值：  无
 *  函数作用：返回桌面事件处理函数
*/
static void event_handler_back_to_home(lv_event_t *e)
{
    if(e->code == LV_EVENT_CLICKED)
    {
        /* 删除背景 */
        if (g_pt_lv_app_factory_test->bg_widget != NULL)
				lv_obj_del(g_pt_lv_app_factory_test->bg_widget);

        /* 释放内存 */
        free(g_pt_lv_app_factory_test);

        /* 清空屏幕并返回桌面 */
        lv_app_anim_out_all(lv_scr_act(), 0);
        lv_desktop_home(100);
    }
}

static void gui_list_cb(lv_event_t *e)
{
    uint32_t id = 0;
    lv_obj_t *target = lv_event_get_target(e);
    lv_obj_t * list = g_pt_lv_app_factory_test->menu;
    const char *item = lv_list_get_btn_text(list, target);
    if (!strcmp(item, "gsensor")) {
        id = 0;
    }
    printf("item: %d, id = %d\n", strncmp(item, "gsensor", strlen(item)), id);

    if (g_pt_lv_app_factory_test->bg_widget != NULL)
    printf("item: %s\n", item);
    lv_obj_del(g_pt_lv_app_factory_test->bg_widget);
    free(g_pt_lv_app_factory_test);
    lv_app_anim_out_all(lv_scr_act(), 0);

    if (id == 0) {
            lv_run_app[id]();
    }
}
static void create_menu(lv_obj_t * obj)
{
    lv_obj_t * list = g_pt_lv_app_factory_test->menu;
    printf("w:%d\n", lv_obj_get_width(obj));
    lv_obj_t *btn0 = lv_list_add_btn(list, LV_SYMBOL_WIFI, "gsensor");
    lv_obj_add_event_cb(btn0, gui_list_cb, LV_EVENT_CLICKED, NULL);
}

/*
 *  函数名：  void lv_app_sys(void)
 *  输入参数：无
 *  返回值：  无
 *  函数作用：应用初始化入口
*/
void lv_app_factory_test(void)
{
	/* 申请内存 */
	g_pt_lv_app_factory_test = (t_lv_app_factory_test *)malloc(sizeof(t_lv_app_factory_test));

	/* 创建背景 */
	g_pt_lv_app_factory_test->bg_widget = lv_obj_create(lv_scr_act());
	lv_obj_set_size(g_pt_lv_app_factory_test->bg_widget, LV_HOR_RES, LV_VER_RES);
	lv_obj_set_y(g_pt_lv_app_factory_test->bg_widget, 0);

	/* 创建app标题 */
    app_add_title(g_pt_lv_app_factory_test->bg_widget, "Factory Test");

	/* 创建返回桌面按钮 */
	app_add_back(g_pt_lv_app_factory_test->bg_widget, event_handler_back_to_home);

    g_pt_lv_app_factory_test->menu = app_add_menu(g_pt_lv_app_factory_test->bg_widget);
    create_menu(g_pt_lv_app_factory_test->bg_widget);
}


